The present invention relates to data filtering. In particular, the invention relates to apparatus and methods for filtering data packets of data for multiple data connections.
With the evolution of communication services, digital services are requiring greater transmission bandwidth. Moreover, more subscribers are subscribing to these services, thus exacerbating the bandwidth demands to an even greater degree. Consequently, services that are common to a group of users and are unidirectional in nature can be broadcasted to the group of users. This approach is commonly referred as multicast services. One example of such a service is digital video broadcast (DVB) in which video signals (such as television) are broadcasted over different transport media, including terrestrial facilities (DVB-T), satellite facilities (DVB-S), and cable facilities (DVB-C). A plurality of services are typically transmitted over a common data stream.
Digital data is typically transported from one location to another in packets having well-defined segments. FIG. 1, for example, illustrates a MultiProtocol Encapsulation (MPE) packet 100 using a DSM-CC section format (also referred as a DSM-CC Private section) that may be used to transport audio, video or other data. Packet 100 includes several distinct segments that are defined by a protocol. For example, the MAC address is formed from different segments of packet 100.
Components that are configured to filter packets read information found in the different segments within the packet. For example, a digital video broadcast (DVB) receiver may read the information found in table id segment section 102, MAC address 1 segment 104, MAC address 2 segment 106 and MAC address 5 segment 108. Conventional hardware based filters are configured to read contiguous segments of data. When the desired data is found in clusters and is not contiguous, resources are wasted when excessively large filters are utilized to filter the clusters of data.
Cluster is a generic term and may include a contiguous segment or a set of contiguous data within a packet or a segment of a packet. With respect to packet 100, table id 102 and MAC address segment 5108 are found in non-contiguous segments or clusters. When a single filter is utilized to filter bits 0-40, the desired clusters are filtered along with several bits of unneeded data. As a result, the size of the filter is unnecessarily large. Supporting a plurality of data connections exacerbates the size of the filter configuration.
In order to provide DVB services, the associated MPEG-2 (Motion Picture Expert Group) transport stream (TS) that is received over the DVB RF channel contains a data signal having a large bandwidth, thus requiring substantial processing whether by associated hardware or by software being executed by a processor. The MPEG-2 stream broadcasts different services to different groups of users by multiplexing streams of different programs. In the art, the broadcasting arrangement is commonly referred as multicasting. There are many fields (segments) in the MPEG-2, MPE (Multiprotocol Encapsulation) and IP protocol headers that must be processed by the receiver""s protocol filter. FIG. 2 shows processing a DVB transport stream according to prior art. A MPEG transport stream 225 carries DVB services and comprises a plurality of packets of different packet types as differentiated by a packet identifier (PID). A PID filter 201 compares each packet with a preselected PID and passes only packets containing the preselected PID in a transport stream 227. Consequently, a processor 205 processes all packets having the preselected PID. If processor 205 processes the data stream with software, the associated processor clock must be sufficiently high. However, increasing the clock speed increases the power consumption of the processor that executes the software. Especially with mobile terminals, power consumption is an important engineering consideration in view of the size of the terminal""s battery. Processing the data stream with hardware also has engineering issues. Processing the large number of fields with a stream having a large bandwidth increases the required amount of logic circuitry. However, a circuit consumes more power as the size increases with circuit complexity.
New services such as DVB require high-bandwidth transport streams such MPEG-2 and MPEG-4. Consequently, the demands on a receiver in processing the transport streams are increasing. A method and apparatus that reduces the associated processing are beneficial in advancing the art in support of these services.
An aspect of the present invention provides methods and apparatus for filtering a broadcast data stream that can support a plurality of data connections. The aspect of the present invention utilizes common filtering for packet segments that are common among the plurality of data connections. Segments that are not common are separately filtered. A set of logic rules is applied to the filtered segments in order to determine whether corresponding packets should be subsequently processed.
In an exemplary embodiment of the invention, a digital video broadcast (DVB) receiver that detects a plurality of IPv4 connections in accordance with a set of predetermined conditions that are applied to selected packet segments of a MPEG-2 (Motion Picture Expert Group) transport stream is provided. (However, the present invention can support protocols other than IPv4.) All selected packets are inputted to a processor for subsequent processing. The selection of the packets is performed by a programmable filter arrangement that utilizes common filtering and Boolean logic. A variation of the exemplary embodiment detects a plurality of IPv6 connections.
Another exemplary embodiment comprises a programmable filter arrangement in which Boolean logic functionality is applied to service information table connections. A service information packet is passed for subsequent processing only if the service information packet has been updated since the last occurrence of processing the packet by a processor.